前端部分做好了,接下來就是做後端的部分。
目標:
步驟:
step1. 加上Action,注意要加上 [ValidateAntiForgeryToken],來驗證前端的輸入。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> GetMoreArticle()
{
var nextArticleId = TempData["ArticleLastId"];
if (TempData["ArticleLastId"] != null && int.TryParse(TempData["ArticleLastId"]!.ToString(), out var i))
{
var model = await _article.GetMoreArticleList(i);
var result = new List<UpdateArticleViewModel>();
if (model is not null && model.Count > 0)
{
result = model.Select(x => new UpdateArticleViewModel
{
Id = x.Id,
ArticleContent = x.ArticleContent,
Title = x.Title,
IsDelete = x.IsDelete
//注意這裡Take(2)
}).Take(2).ToList();
TempData["ArticleLastId"] = result.Last().Id.ToString();
}
return Json(result);
}
return Json(string.Empty);
}
note:
1.注意這裡Take(2)的用法是設計使用者可以撈出接下來有多少文章出來。
(你也可以改成10或是100)
step2. ArticleService.cs 補上撈取資料庫的程式碼
public async Task<IList<Article>> GetMoreArticleList(long id)
{
return await _db.Articles
.Where(x => x.Id < id)
.OrderByDescending(x => x.Id)
.ToListAsync();
}
做好後就可以看到,可以按按鈕新增下兩篇的文章連結。